<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstRTSPAddressPool: GStreamer RTSP Server Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer RTSP Server Reference Manual">
<link rel="up" href="ch01.html" title="">
<link rel="prev" href="gst-rtsp-server-GstRTSPSdp.html" title="GstRTSPSdp">
<link rel="next" href="GstRTSPThreadPool.html" title="GstRTSPThreadPool">
<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GstRTSPAddressPool.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GstRTSPAddressPool.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gst-rtsp-server-GstRTSPSdp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GstRTSPThreadPool.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GstRTSPAddressPool"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstRTSPAddressPool.top_of_page"></a>GstRTSPAddressPool</span></h2>
<p>GstRTSPAddressPool — A pool of network addresses</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GstRTSPAddressPool.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="returnvalue">GstRTSPAddress</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-copy" title="gst_rtsp_address_copy ()">gst_rtsp_address_copy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-free" title="gst_rtsp_address_free ()">gst_rtsp_address_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="returnvalue">GstRTSPAddressPool</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-new" title="gst_rtsp_address_pool_new ()">gst_rtsp_address_pool_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-clear" title="gst_rtsp_address_pool_clear ()">gst_rtsp_address_pool_clear</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-dump" title="gst_rtsp_address_pool_dump ()">gst_rtsp_address_pool_dump</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-add-range" title="gst_rtsp_address_pool_add_range ()">gst_rtsp_address_pool_add_range</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-has-unicast-addresses" title="gst_rtsp_address_pool_has_unicast_addresses ()">gst_rtsp_address_pool_has_unicast_addresses</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="returnvalue">GstRTSPAddress</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-acquire-address" title="gst_rtsp_address_pool_acquire_address ()">gst_rtsp_address_pool_acquire_address</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstRTSPAddressPool.html#GstRTSPAddressPoolResult" title="enum GstRTSPAddressPoolResult"><span class="returnvalue">GstRTSPAddressPoolResult</span></a>
</td>
<td class="function_name">
<a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-reserve-address" title="gst_rtsp_address_pool_reserve_address ()">gst_rtsp_address_pool_reserve_address</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstRTSPAddressPool.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstRTSPAddressPool.html#GST-RTSP-ADDRESS-POOL-ANY-IPV4:CAPS" title="GST_RTSP_ADDRESS_POOL_ANY_IPV4">GST_RTSP_ADDRESS_POOL_ANY_IPV4</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstRTSPAddressPool.html#GST-RTSP-ADDRESS-POOL-ANY-IPV6:CAPS" title="GST_RTSP_ADDRESS_POOL_ANY_IPV6">GST_RTSP_ADDRESS_POOL_ANY_IPV6</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress">GstRTSPAddress</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddressFlags" title="enum GstRTSPAddressFlags">GstRTSPAddressFlags</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddressPool-struct" title="struct GstRTSPAddressPool">GstRTSPAddressPool</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddressPoolClass" title="struct GstRTSPAddressPoolClass">GstRTSPAddressPoolClass</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddressPoolResult" title="enum GstRTSPAddressPoolResult">GstRTSPAddressPoolResult</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstRTSPAddressPool.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GstRTSPAddressPool
</pre>
</div>
<div class="refsect1">
<a name="GstRTSPAddressPool.description"></a><h2>Description</h2>
<p>The <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> is an object that maintains a collection of network
addresses. It is used to allocate server ports and server multicast addresses
but also to reserve client provided destination addresses.</p>
<p>A range of addresses can be added with <a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-add-range" title="gst_rtsp_address_pool_add_range ()"><code class="function">gst_rtsp_address_pool_add_range()</code></a>.
Both multicast and unicast addresses can be added.</p>
<p>With <a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-acquire-address" title="gst_rtsp_address_pool_acquire_address ()"><code class="function">gst_rtsp_address_pool_acquire_address()</code></a> an unused address and port range
can be acquired from the pool. With <a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-reserve-address" title="gst_rtsp_address_pool_reserve_address ()"><code class="function">gst_rtsp_address_pool_reserve_address()</code></a> a
specific address can be retrieved. Both methods return a boxed
<a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a> that should be freed with <a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-free" title="gst_rtsp_address_free ()"><code class="function">gst_rtsp_address_free()</code></a> after
usage, which brings the address back into the pool.</p>
<p>Last reviewed on 2013-07-16 (1.0.0)</p>
</div>
<div class="refsect1">
<a name="GstRTSPAddressPool.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gst-rtsp-address-copy"></a><h3>gst_rtsp_address_copy ()</h3>
<pre class="programlisting"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="returnvalue">GstRTSPAddress</span></a> *
gst_rtsp_address_copy (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a> *addr</code></em>);</pre>
<p>Make a copy of <em class="parameter"><code>addr</code></em>
.</p>
<div class="refsect3">
<a name="gst-rtsp-address-copy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>addr</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-rtsp-address-copy.returns"></a><h4>Returns</h4>
<p> a copy of <em class="parameter"><code>addr</code></em>
.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-free"></a><h3>gst_rtsp_address_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_rtsp_address_free (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a> *addr</code></em>);</pre>
<p>Free <em class="parameter"><code>addr</code></em>
 and releasing it back into the pool when owned by a
pool.</p>
<div class="refsect3">
<a name="gst-rtsp-address-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>addr</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-pool-new"></a><h3>gst_rtsp_address_pool_new ()</h3>
<pre class="programlisting"><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="returnvalue">GstRTSPAddressPool</span></a> *
gst_rtsp_address_pool_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Make a new <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a>.</p>
<div class="refsect3">
<a name="gst-rtsp-address-pool-new.returns"></a><h4>Returns</h4>
<p> a new <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-pool-clear"></a><h3>gst_rtsp_address_pool_clear ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_rtsp_address_pool_clear (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> *pool</code></em>);</pre>
<p>Clear all addresses in <em class="parameter"><code>pool</code></em>
. There should be no outstanding
allocations.</p>
<div class="refsect3">
<a name="gst-rtsp-address-pool-clear.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pool</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-pool-dump"></a><h3>gst_rtsp_address_pool_dump ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_rtsp_address_pool_dump (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> *pool</code></em>);</pre>
<p>Dump the free and allocated addresses to stdout.</p>
<div class="refsect3">
<a name="gst-rtsp-address-pool-dump.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pool</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-pool-add-range"></a><h3>gst_rtsp_address_pool_add_range ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gst_rtsp_address_pool_add_range (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> *pool</code></em>,
                                 <em class="parameter"><code>const <span class="type">gchar</span> *min_address</code></em>,
                                 <em class="parameter"><code>const <span class="type">gchar</span> *max_address</code></em>,
                                 <em class="parameter"><code><span class="type">guint16</span> min_port</code></em>,
                                 <em class="parameter"><code><span class="type">guint16</span> max_port</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> ttl</code></em>);</pre>
<p>Adds the addresses from <em class="parameter"><code>min_addess</code></em>
 to <em class="parameter"><code>max_address</code></em>
 (inclusive)
to <em class="parameter"><code>pool</code></em>
. The valid port range for the addresses will be from <em class="parameter"><code>min_port</code></em>
 to
<em class="parameter"><code>max_port</code></em>
 inclusive.</p>
<p>When <em class="parameter"><code>ttl</code></em>
 is 0, <em class="parameter"><code>min_address</code></em>
 and <em class="parameter"><code>max_address</code></em>
 should be unicast addresses.
<em class="parameter"><code>min_address</code></em>
 and <em class="parameter"><code>max_address</code></em>
 can be set to
<a class="link" href="GstRTSPAddressPool.html#GST-RTSP-ADDRESS-POOL-ANY-IPV4:CAPS" title="GST_RTSP_ADDRESS_POOL_ANY_IPV4"><span class="type">GST_RTSP_ADDRESS_POOL_ANY_IPV4</span></a> or <a class="link" href="GstRTSPAddressPool.html#GST-RTSP-ADDRESS-POOL-ANY-IPV6:CAPS" title="GST_RTSP_ADDRESS_POOL_ANY_IPV6"><span class="type">GST_RTSP_ADDRESS_POOL_ANY_IPV6</span></a> to bind
to all available IPv4 or IPv6 addresses.</p>
<p>When <em class="parameter"><code>ttl</code></em>
 &gt; 0, <em class="parameter"><code>min_address</code></em>
 and <em class="parameter"><code>max_address</code></em>
 should be multicast addresses.</p>
<div class="refsect3">
<a name="gst-rtsp-address-pool-add-range.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pool</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>min_address</p></td>
<td class="parameter_description"><p>a minimum address to add</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>max_address</p></td>
<td class="parameter_description"><p>a maximum address to add</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>min_port</p></td>
<td class="parameter_description"><p>the minimum port</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>max_port</p></td>
<td class="parameter_description"><p>the maximum port</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ttl</p></td>
<td class="parameter_description"><p>a TTL or 0 for unicast addresses</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-rtsp-address-pool-add-range.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the addresses could be added.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-pool-has-unicast-addresses"></a><h3>gst_rtsp_address_pool_has_unicast_addresses ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gst_rtsp_address_pool_has_unicast_addresses
                               (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> *pool</code></em>);</pre>
<p>Used to know if the pool includes any unicast addresses.</p>
<div class="refsect3">
<a name="gst-rtsp-address-pool-has-unicast-addresses.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pool</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-rtsp-address-pool-has-unicast-addresses.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the pool includes any unicast addresses, <code class="literal">FALSE</code> otherwise</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-pool-acquire-address"></a><h3>gst_rtsp_address_pool_acquire_address ()</h3>
<pre class="programlisting"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="returnvalue">GstRTSPAddress</span></a> *
gst_rtsp_address_pool_acquire_address (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> *pool</code></em>,
                                       <em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddressFlags" title="enum GstRTSPAddressFlags"><span class="type">GstRTSPAddressFlags</span></a> flags</code></em>,
                                       <em class="parameter"><code><span class="type">gint</span> n_ports</code></em>);</pre>
<p>Take an address and ports from <em class="parameter"><code>pool</code></em>
. <em class="parameter"><code>flags</code></em>
 can be used to control the
allocation. <em class="parameter"><code>n_ports</code></em>
 consecutive ports will be allocated of which the first
one can be found in <em class="parameter"><code>port</code></em>
.</p>
<div class="refsect3">
<a name="gst-rtsp-address-pool-acquire-address.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pool</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_ports</p></td>
<td class="parameter_description"><p>the amount of ports</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-rtsp-address-pool-acquire-address.returns"></a><h4>Returns</h4>
<p> a <a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a> that should be freed with
gst_rtsp_address_free after use or <code class="literal">NULL</code> when no address could be
acquired. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-address-pool-reserve-address"></a><h3>gst_rtsp_address_pool_reserve_address ()</h3>
<pre class="programlisting"><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddressPoolResult" title="enum GstRTSPAddressPoolResult"><span class="returnvalue">GstRTSPAddressPoolResult</span></a>
gst_rtsp_address_pool_reserve_address (<em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> *pool</code></em>,
                                       <em class="parameter"><code>const <span class="type">gchar</span> *ip_address</code></em>,
                                       <em class="parameter"><code><span class="type">guint</span> port</code></em>,
                                       <em class="parameter"><code><span class="type">guint</span> n_ports</code></em>,
                                       <em class="parameter"><code><span class="type">guint</span> ttl</code></em>,
                                       <em class="parameter"><code><a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a> **address</code></em>);</pre>
<p>Take a specific address and ports from <em class="parameter"><code>pool</code></em>
. <em class="parameter"><code>n_ports</code></em>
 consecutive
ports will be allocated of which the first one can be found in
<em class="parameter"><code>port</code></em>
.</p>
<p>If <em class="parameter"><code>ttl</code></em>
 is 0, <em class="parameter"><code>address</code></em>
 should be a unicast address. If <em class="parameter"><code>ttl</code></em>
 &gt; 0, <em class="parameter"><code>address</code></em>

should be a valid multicast address.</p>
<div class="refsect3">
<a name="gst-rtsp-address-pool-reserve-address.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pool</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ip_address</p></td>
<td class="parameter_description"><p>The IP address to reserve</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>port</p></td>
<td class="parameter_description"><p>The first port to reserve</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_ports</p></td>
<td class="parameter_description"><p>The number of ports</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ttl</p></td>
<td class="parameter_description"><p>The requested ttl</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>address</p></td>
<td class="parameter_description"><p> storage for a <a class="link" href="GstRTSPAddressPool.html#GstRTSPAddress" title="struct GstRTSPAddress"><span class="type">GstRTSPAddress</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-rtsp-address-pool-reserve-address.returns"></a><h4>Returns</h4>
<p> <a class="link" href="GstRTSPAddressPool.html#GST-RTSP-ADDRESS-POOL-OK:CAPS"><span class="type">GST_RTSP_ADDRESS_POOL_OK</span></a> if an address was reserved. The address
is returned in <em class="parameter"><code>address</code></em>
and should be freed with gst_rtsp_address_free
after use.</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstRTSPAddressPool.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GST-RTSP-ADDRESS-POOL-ANY-IPV4:CAPS"></a><h3>GST_RTSP_ADDRESS_POOL_ANY_IPV4</h3>
<pre class="programlisting">#define GST_RTSP_ADDRESS_POOL_ANY_IPV4  "0.0.0.0"
</pre>
<p>Used with <a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-add-range" title="gst_rtsp_address_pool_add_range ()"><code class="function">gst_rtsp_address_pool_add_range()</code></a> to bind to all
IPv4 addresses</p>
</div>
<hr>
<div class="refsect2">
<a name="GST-RTSP-ADDRESS-POOL-ANY-IPV6:CAPS"></a><h3>GST_RTSP_ADDRESS_POOL_ANY_IPV6</h3>
<pre class="programlisting">#define GST_RTSP_ADDRESS_POOL_ANY_IPV6  "::"
</pre>
<p>Used with <a class="link" href="GstRTSPAddressPool.html#gst-rtsp-address-pool-add-range" title="gst_rtsp_address_pool_add_range ()"><code class="function">gst_rtsp_address_pool_add_range()</code></a> to bind to all
IPv6 addresses</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRTSPAddress"></a><h3>struct GstRTSPAddress</h3>
<pre class="programlisting">struct GstRTSPAddress {
  GstRTSPAddressPool *pool;

  gchar *address;
  guint16 port;
  gint n_ports;
  guint8 ttl;
};
</pre>
<p>An address</p>
<div class="refsect3">
<a name="GstRTSPAddress.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> *<em class="structfield"><code><a name="GstRTSPAddress.pool"></a>pool</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="GstRTSPAddressPool.html" title="GstRTSPAddressPool"><span class="type">GstRTSPAddressPool</span></a> owner of this address</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GstRTSPAddress.address"></a>address</code></em>;</p></td>
<td class="struct_member_description"><p>the address</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="GstRTSPAddress.port"></a>port</code></em>;</p></td>
<td class="struct_member_description"><p>the port number</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gint</span> <em class="structfield"><code><a name="GstRTSPAddress.n-ports"></a>n_ports</code></em>;</p></td>
<td class="struct_member_description"><p>number of ports</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GstRTSPAddress.ttl"></a>ttl</code></em>;</p></td>
<td class="struct_member_description"><p>TTL or 0 for unicast addresses</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstRTSPAddressFlags"></a><h3>enum GstRTSPAddressFlags</h3>
<p>Flags used to control allocation of addresses</p>
<div class="refsect3">
<a name="GstRTSPAddressFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-FLAG-NONE:CAPS"></a>GST_RTSP_ADDRESS_FLAG_NONE</p></td>
<td class="enum_member_description">
<p>no flags</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-FLAG-IPV4:CAPS"></a>GST_RTSP_ADDRESS_FLAG_IPV4</p></td>
<td class="enum_member_description">
<p>an IPv4 address</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-FLAG-IPV6:CAPS"></a>GST_RTSP_ADDRESS_FLAG_IPV6</p></td>
<td class="enum_member_description">
<p>and IPv6 address</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-FLAG-EVEN-PORT:CAPS"></a>GST_RTSP_ADDRESS_FLAG_EVEN_PORT</p></td>
<td class="enum_member_description">
<p>address with an even port</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-FLAG-MULTICAST:CAPS"></a>GST_RTSP_ADDRESS_FLAG_MULTICAST</p></td>
<td class="enum_member_description">
<p>a multicast address</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-FLAG-UNICAST:CAPS"></a>GST_RTSP_ADDRESS_FLAG_UNICAST</p></td>
<td class="enum_member_description">
<p>a unicast address</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstRTSPAddressPool-struct"></a><h3>struct GstRTSPAddressPool</h3>
<pre class="programlisting">struct GstRTSPAddressPool;</pre>
<p>An address pool, all member are private</p>
<div class="refsect3">
<a name="GstRTSPAddressPool.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstRTSPAddressPoolClass"></a><h3>struct GstRTSPAddressPoolClass</h3>
<pre class="programlisting">struct GstRTSPAddressPoolClass {
  GObjectClass  parent_class;
};
</pre>
<p>Opaque Address pool class.</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRTSPAddressPoolResult"></a><h3>enum GstRTSPAddressPoolResult</h3>
<p>Result codes from RTSP address pool functions.</p>
<div class="refsect3">
<a name="GstRTSPAddressPoolResult.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-POOL-OK:CAPS"></a>GST_RTSP_ADDRESS_POOL_OK</p></td>
<td class="enum_member_description">
<p>no error</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-POOL-EINVAL:CAPS"></a>GST_RTSP_ADDRESS_POOL_EINVAL</p></td>
<td class="enum_member_description">
<p>invalid arguments were provided to a function</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-POOL-ERESERVED:CAPS"></a>GST_RTSP_ADDRESS_POOL_ERESERVED</p></td>
<td class="enum_member_description">
<p>the addres has already been reserved</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-POOL-ERANGE:CAPS"></a>GST_RTSP_ADDRESS_POOL_ERANGE</p></td>
<td class="enum_member_description">
<p>the address is not in the pool</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-RTSP-ADDRESS-POOL-ELAST:CAPS"></a>GST_RTSP_ADDRESS_POOL_ELAST</p></td>
<td class="enum_member_description">
<p>last error</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstRTSPAddressPool.see-also"></a><h2>See Also</h2>
<p><a class="link" href="GstRTSPStream.html" title="GstRTSPStream"><span class="type">GstRTSPStream</span></a>, <a class="link" href="GstRTSPStreamTransport.html" title="GstRTSPStreamTransport"><span class="type">GstRTSPStreamTransport</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>